package top.rainf.service;

import top.rainf.domain.vo.UserBaseInfo;

/**
 * @author 星环
 * @date 2023/5/8 14:04:05
 * @description
 */
public interface ILoginService {
    /**
     * 登录方法
     *
     * @param username 用户名
     * @param pwd      密码
     * @param code
     * @param realCode
     * @return 登录成功，返回用户信息
     */
    UserBaseInfo login(String username, String pwd, String code, String realCode);

    /**
     * 生成重置密码的凭证，用于重置密码验证，用户访问网站时，如果有指定的凭证，就可以修改对应用户的密码
     * 用户使用凭证后需要把对应的凭证删除
     * @param username 用户名
     * @param email 邮箱
     * @param realCode 验证码
     * @return 根据以上三者生成的凭证，暂定把三者拼接后md5加密一次
     */
    String generateResetPasswordToken(String username,String email,String realCode);

    /**
     * 验证验证码是否正确
     * @param code 用户输入的验证码
     * @param realCode 真正的验证码
     * @return 验证码是否正确
     */
    boolean verifyCaptcha(String code, String realCode);
}
